// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   ClientHandler.java

package org.quickserver.net.server;

import java.io.*;
import java.net.Socket;
import java.net.SocketException;
import java.nio.channels.*;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.sql.Connection;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

// Referenced classes of package org.quickserver.net.server:
//            ClientEvent, ClientData, DataType, DataMode, 
//            QuickServer, TheClient

public interface ClientHandler
    extends Runnable
{

    public abstract void addEvent(ClientEvent clientevent);

    public abstract void removeEvent(ClientEvent clientevent);

    public abstract void clean();

    public abstract void closeConnection();

    public abstract void forceClose()
        throws IOException;

    public abstract Logger getAppLogger();

    public abstract BufferedInputStream getBufferedInputStream();

    public abstract BufferedOutputStream getBufferedOutputStream();

    public abstract BufferedReader getBufferedReader();

    public abstract String getCharset();

    public abstract Date getClientConnectedTime();

    public abstract ClientData getClientData();

    public abstract boolean getCommunicationLogging();

    public abstract DataMode getDataMode(DataType datatype);

    public abstract String getHostAddress();

    public abstract InputStream getInputStream();

    public abstract Date getLastCommunicationTime();

    public abstract String getMaxConnectionMsg();

    public abstract String getName();

    public abstract ObjectInputStream getObjectInputStream();

    public abstract ObjectOutputStream getObjectOutputStream();

    public abstract OutputStream getOutputStream();

    public abstract SelectionKey getSelectionKey();

    public abstract QuickServer getServer();

    public abstract Socket getSocket();

    public abstract SocketChannel getSocketChannel();

    public abstract int getTimeout();

    public abstract void handleClient(TheClient theclient)
        throws Exception;

    public abstract boolean hasEvent(ClientEvent clientevent);

    public abstract String info();

    public abstract boolean isClientEventNext(ClientEvent clientevent);

    public abstract boolean isClosed();

    public abstract boolean isConnected()
        throws SocketException;

    public abstract boolean isOpen();

    public abstract boolean isSecure();

    public abstract void makeSecure()
        throws IOException, NoSuchAlgorithmException, KeyManagementException;

    public abstract void makeSecure(boolean flag, boolean flag1, boolean flag2, String s)
        throws IOException, NoSuchAlgorithmException, KeyManagementException;

    public abstract void makeSecure(String s)
        throws IOException, NoSuchAlgorithmException, KeyManagementException;

    public abstract byte[] readBinary()
        throws IOException;

    public abstract String readBytes()
        throws IOException;

    public abstract void registerForRead()
        throws IOException, ClosedChannelException;

    public abstract void registerForWrite()
        throws IOException, ClosedChannelException;

    public abstract void run();

    public abstract void sendClientBinary(byte abyte0[])
        throws IOException;

    public abstract void sendClientBinary(byte abyte0[], int i, int j)
        throws IOException;

    public abstract void sendClientBytes(String s)
        throws IOException;

    public abstract void sendClientMsg(String s)
        throws IOException;

    public abstract void sendClientObject(Object obj)
        throws IOException;

    public abstract void sendSystemMsg(String s);

    public abstract void sendSystemMsg(String s, Level level);

    public abstract void setCharset(String s);

    public abstract void setCommunicationLogging(boolean flag);

    public abstract void setDataMode(DataMode datamode, DataType datatype)
        throws IOException;

    public abstract void setMaxConnectionMsg(String s);

    public abstract void setOutputStream(OutputStream outputstream)
        throws IOException;

    public abstract void setSecure(boolean flag);

    public abstract void setSelectionKey(SelectionKey selectionkey);

    public abstract void setSocket(Socket socket);

    public abstract void setSocketChannel(SocketChannel socketchannel);

    public abstract void setTimeout(int i);

    public abstract String toString();

    public abstract void updateInputOutputStreams()
        throws IOException;

    public abstract void updateLastCommunicationTime();

    /**
     * @deprecated Method getConnection is deprecated
     */

    public abstract Connection getConnection(String s)
        throws Exception;

    /**
     * @deprecated Method isConected is deprecated
     */

    public abstract boolean isConected()
        throws SocketException;

    /**
     * @deprecated Method sendSystemMsg is deprecated
     */

    public abstract void sendSystemMsg(String s, boolean flag);

    /**
     * @deprecated Method getBufferedWriter is deprecated
     */

    public abstract BufferedWriter getBufferedWriter();

    public abstract int getTotalReadBytes();

    public abstract int getTotalWrittenBytes();

    public abstract void resetTotalReadBytes();

    public abstract void resetTotalWrittenBytes();
}
